Facilitating human to machine interactions in a natural manner is a difficult problem. Both non-voice and certain voice interfaces tend to be overly structured and require some level of familiarity with the interfaces. An ability for a human to interact with machines using natural language utterances in various contexts remains a desirable goal. However, human interaction with machines in various contexts remains a difficult problem.
One area of difficulty lies in the disambiguation of natural language requests. The objects of natural language requests and command, entity names, may sometimes be ambiguous. For example, a user may have multiple contacts of the same name in their directory. A phone dialing request made by first name may require disambiguation. A natural language system however, that constantly requests a user to use specific and unambiguous language or to clarify requests made in ambiguous language may quickly begin to feel burdensome for the user.
These and other drawbacks exist with conventional natural language processing disambiguation methods.